# author : 202213216李豆豆
# 5.利用“牛顿迭代法”求出1~n之间的所有整数的算术平方根，并与math库中sqrt0函数的结果进行比较。
import math

tolerance = 1e-8


def newton_iteration(a):
    if a == 1 or a == 0:
        return a
    x = a
    while True:
        y = (x + a / x) / 2  # 牛顿迭代法
        if abs(x - y) < tolerance: # 判断迭代前后是否无线接近
            break
        x = y
    return y


n = eval(input("请输入n的值："))
for i in range(1, n + 1):
    newton_sqrt = newton_iteration(i)  # 牛顿迭代法求平方根
    math_sqrt = math.sqrt(i)  # 库函数求平方根
    print("{}开平方后，用牛顿迭代法求的值为：{:.2f}，math.sqrt()计算得{:.2f}".format(i, newton_sqrt, math_sqrt))
